package com.zofer.study.tree;

/**
 * 给定一棵二叉树，判断琪是否是自身的镜像（即：是否对称）
 * 例如：下面这棵二叉树是对称的
 *      1
 *     /  \
 *   2    2
 *  / \    / \
 * 3 4  4  3
 * 下面这棵二叉树不对称。
 *     1
 *     / \
 *   2   2
 *     \    \
 *     3    3
 */
public class IsSymmetric {

    public boolean isSymmetric(TreeNode root) {
        return issubSymmetric(root,root);
    }


    public boolean issubSymmetric(TreeNode root1,TreeNode root2){

        if(root1 == null && root2 == null){
            return true;
        }

        if(root1 == null || root2 == null){
            return false;
        }

        if(root1.val != root2.val){
            return false;
        }

        return issubSymmetric(root1.left,root2.right) && issubSymmetric(root1.right,root2.left);
    }
}
